Міністерство освіти і науки, молоді та спорту України
Національний університет «Львівська політехніка»
Кафедра ЕОМ
Доповідь
На тему: «Керування оперативною пам’яттю»
Підготував
Студент групи КІ-33
Тинкалюк А. В.
Львів 2013
Керування оперативною пам'яттю
План
1. Основи технології віртуальної пам'яті
2. Поняття віртуальної пам’яті
3. Проблеми реалізації віртуальної пам’яті. Фрагментація пам’яті
4. Логічна і фізична адресація пам’яті
5. Особливості сегментації пам’яті
6. Сторінкова організація пам’яті
7. Сторінково-сегмента організація пам’яті
Головне завдання комп'ютерної системи – виконувати програми. Програми разом з даними, до яких вони мають доступ, в процесі виконання повинні (принаймні частково) знаходитися в оперативній пам'яті. Операційній системі доводиться вирішувати задачу розподілу пам'яті між процесами користувача і компонентами ОС. Ця діяльність називається керуванням пам'яттю.
Під пам'яттю розумітимемо ресурс комп'ютера, призначений для зберігання програмного коду і даних. Пам'ять зображають як масив машинних слів або байтів з їхніми адресами. У Фон-Нейманівській архітектурі комп'ютерних систем процесор вибирає інструкції і дані з пам'яті та може зберігати в ній результати виконання операцій.
Таким чином, пам'ять (storage, memory) є найважливішим ресурсом, що вимагає ретельного керування.
Частина ОС, яка відповідає за керування пам'яттю, називається менеджером пам'яті.
Різні види пам'яті організовані в ієрархію за ступенем часу доступу, вартістю і об’єму.
На нижніх рівнях такої ієрархії перебуває дешевша і повільніша пам'ять більшого обсягу, а в міру просування ієрархією нагору пам'ять стає дорожчою і швидшою (а її обсяг стає меншим). Найдешевшим і найповільнішим запам'ятовувальним пристроєм є жорсткий диск комп'ютера. Його називають також допоміжним запам'ятовувальним пристроєм (secondary storage). Швидшою й дорожчою є оперативна пам'ять, що зберігається в мікросхемах пам'яті, встановлених на комп'ютері, — таку пам'ять називатимемо основною чи оперативною пам'яттю (main memory). Ще швидшими засобами зберігання даних є різні кеші процесора, а обсяг цих кешів ще обмеженіший.
1. Основи технології віртуальної пам'яті
Спочатку розглянемо передумови введення концепції віртуальної пам'яті. Наведемо найпростіший з можливих способів спільного використання фізичної пам'яті кількома процесами (рис. 1.1).
Рис. 1.1 Спільне використання пам’яті процесами
За цієї ситуації кожний процес завантажують у свою власну неперервну ділянку фізичної пам'яті, ділянка наступного процесу починається відразу після ділянки попереднього. На рис. 1.1 праворуч позначені адреси фізичної пам'яті, починаючи з яких завантажуються процеси.
Якщо проаналізувати особливості розподілу пам'яті на основі цього підходу, можуть виникнути такі запитання.
1. Як виконувати процеси, котрим потрібно більше фізичної пам'яті, ніж встановлено на комп'ютері?
2. Що відбудеться, коли процес виконає операцію записування за невірною адресою (наприклад, процес Р2 — за адресою 0x7500)?
3. Що робити, коли процесу (наприклад, процесу Р1) буде потрібна додаткова пам'ять під час його виконання?
4. Коли процес отримає інформацію про конкретну адресу фізичної пам'яті, що з неї розпочнеться його виконання, і як мають бути перетворені адреси пам'яті, використані в його коді?
5. Що робити, коли процесу не потрібна вся пам'ять, виділена для нього?
Пряме завантаження процесів у фізичну пам'ять не дає змоги дати відповіді на ці запитання. Очевидно, що потрібні деякі засоби трансляції адрес пам'яті (зв’язування), які давали б змогу процесам використовувати набори адрес, котрі відрізняються від адрес фізичної пам'яті.
Програміст у своїй програмі звичайно не використовує адреси пам'яті безпосередньо, замість них вживаються символічні імена (функцій, глобальних змінних тощо). Внаслідок компіляції та компонування ці імена прив'язують до переміщуваних адрес (такі адреси задають у відносних одиницях, наприклад «100 байт від початку модуля»). Такі адреси ще називають пер...